package com.myproxyDynamicSimulation;

import java.io.IOException;

import com.myproxyDynamicJdk.SingInterface;
import com.myproxyDynamicJdk.Singer;

public class ZMainTest {

	/**
	 * 模拟实现JDK动态代理
	 * @param args
	 * 
	 * 动态代理实现思路：
	 * 实现功能：通过Proxy的newProxyInstance返回代理对象；
	 * 1.声明一段源码（动态产生代理）；
	 * 2.编译源码（JDK Compiler API）,产生一个代理类；
	 * 3.将这个类load到内存中，产生一个新的代理对象；
	 * 4.return 代理对象；
	 * @throws IOException 
	 */
	public static void main(String[] args) throws Exception {
		
		Singer s = new Singer();
		HetongHandler h = new HetongHandler(s);
		SingInterface sing = (SingInterface) Proxy.newProxyInstance(SingInterface.class, h);
		sing.sing();
	}
}
